package com.leetcode.LC;

import java.util.Arrays;

public class LC443 {
    public int compress(char[] chars) {
        int sum = 1, j = -1, i;
        for (i = 0; i < chars.length - 1; i++) {
            if (chars[i] == chars[i + 1]) {
                sum++;
            } else {
                j++;
                chars[j] = chars[i];
                if (sum != 1 && sum < 10) {
                    j++;
                    chars[j] = (char) (sum+'0');
                } else if (sum >= 10&&sum<100) {//需改进
                    j++;
                    chars[j] = (char) (sum / 10+'0');
                    j++;
                    chars[j] = (char) (sum % 10+'0');
                }else if (sum >= 100&&sum<1000) {//需改进
                    j++;
                    chars[j] = (char) (sum / 100+'0');
                    j++;
                    chars[j] = (char) (sum / 10+'0');
                    j++;
                    chars[j] = (char) (sum % 10+'0');
                }else if (sum>=1000) {//需改进
                    j++;
                    chars[j] = (char) (sum / 1000+'0');
                    j++;
                    chars[j] = (char) (sum / 100+'0');
                    j++;
                    chars[j] = (char) (sum / 10+'0');
                    j++;
                    chars[j] = (char) (sum % 10+'0');
                }
                sum = 1;
            }
        }
        j++;
        chars[j] = chars[i];
        if (sum != 1 && sum < 10) {
            j++;
            chars[j] = (char) (sum+'0');
        } else if (sum >= 10&&sum<100) {//需改进
            j++;
            chars[j] = (char) (sum / 10+'0');
            j++;
            chars[j] = (char) (sum % 10+'0');
        }else if (sum >= 100&&sum<1000) {//需改进
            j++;
            chars[j] = (char) (sum / 100+'0');
            j++;
            chars[j] = (char) (sum / 10+'0');
            j++;
            chars[j] = (char) (sum % 10+'0');
        }else if (sum>=1000) {//需改进
            j++;
            chars[j] = (char) (sum / 1000+'0');
            j++;
            chars[j] = (char) (sum / 100+'0');
            j++;
            chars[j] = (char) (sum / 10+'0');
            j++;
            chars[j] = (char) (sum % 10+'0');
        }
        System.out.println(chars=Arrays.copyOfRange(chars,0,j+1));
        return j+1;
    }

    public static void main(String[] args) {
        System.out.println(new LC443().compress(new char[]{'a','b','b','b','b','b','b','b','b','b','b','b','b'}));
    }
}
